package com.puboot.module.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.puboot.module.model.LkChapter;
import com.puboot.module.model.LkComic;
import com.puboot.module.model.LkComicLang;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * (LkComic)表服务接口
 *
 * @author Leonidax
 * @since 2024-10-11 16:09:04
 */
public interface LkComicService extends IService<LkComic>{
    /**
     * 用于站长检查垃圾图片
     * @param page
     * @return
     */
    IPage<LkComic> check(Integer page);
    /**
     * 图片识别
     * @param isFee
     * @return
     */
    List<LkComic> limitIsFee(Boolean isFee);
    int updateIsFee(Integer id);

    /**
     * 图片下载
     * @param total
     * @param to
     * @return
     */
    List<LkComic> limitTotal(Integer total, Integer to);
    List<LkComic> limitTotal(Integer total);
    int updateTotal(Integer id);
    /**
     * 搜索
     * @param word
     * @param lang
     * @return
     */
    List<LkComic> search(String word, String lang);
    /**
     * 翻译封面
     * @param id
     * @param lang
     * @return
     */
    LkComicLang translate(Integer id, String lang);
    /**
     * 首页随机展示
     * @param type
     * @param size
     * @param lang
     * @return
     */
    List<LkComic> random(Integer type, Integer size, String lang);

    /**
     * 排行分页
     * @param page
     * @param lang
     * @return
     */
    IPage<LkComic> rank(Integer page, String lang);

    /**
     * 所有
     * @param page
     * @param lang
     * @return
     */
    IPage<LkComic> all(Integer page, String lang);

    /**
     * 分类
     * @param cate
     * @param page
     * @param lang
     * @return
     */
    IPage<LkComic> cate(Integer cate, Integer page, String lang);

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @param lang 语言
     * @return 实例对象
     */
    LkComic queryById(Integer id, String lang);

    /**
     * 分页查询
     *
     * @param lkComic 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    Page<LkComic> queryByPage(LkComic lkComic, PageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param lkComic 实例对象
     * @return 实例对象
     */
    LkComic insert(LkComic lkComic);

    /**
     * 修改数据
     *
     * @param lkComic 实例对象
     * @return 实例对象
     */
    LkComic update(LkComic lkComic);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

}
